package com.zzq.my.jetpacks.jectpackapp.utils

import android.text.TextUtils
import com.blankj.utilcode.util.RegexUtils

/**
 * 描述：格式化工具
 * 作者：zhuangzeqin
 * 时间: 2022/9/9-9:57
 * 邮箱：zzq@eeepay.cn
 * 备注:
 */
object FormatUtils {
    @JvmStatic
    //将手机号转换成344格式 123 4456 3445
    fun onPhoneFormat344(text: String): String {
        if (text.isEmpty()) return ""
        if (!RegexUtils.isMobileSimple(text)) return text
        val sb = StringBuilder(text)
        val indexSpace1 = 3
        val indexSpace2 = 8
        val space: String = " "
        //2.根据长度追加' '
        if (sb.length > indexSpace1) {
            sb.insert(indexSpace1, space)
        }
        if (sb.length > indexSpace2) {
            sb.insert(indexSpace2, space);
        }
        return sb.toString()
    }

    /**
     *  实现银行卡号四位一空格展示
     *  仅仅支持数字
     */
    @JvmStatic
    fun onCardNumFormat4(accountNo: String): String {
        //实现银行卡号四位一空格展示在TextView中。
        return accountNo.replace("\\d{4}(?!$)".toRegex(), "$0 ")
    }

    /**
     * 例如：6222 4332 4333 2222 888
     *
     * **** **** **** **** 888
     */
    @JvmStatic
    fun split4CardNum(str: String): String? {
        var temp: String? = ""
        if (TextUtils.isEmpty(str)) return ""
        val lenght = str.length
        val num = lenght / 4 // 循环多少次
        val yushu = lenght % 4 // 余数
        for (i in 0 until num) {
            temp += str.substring(i * 4, (i + 1) * 4) + " "
        }
        if (yushu > 0) {
            temp += str.substring(4 * num)
        }
        return temp
    }

    /**
     * 删除字符串中所有空格
     */
    @JvmStatic
    fun removeSpace(str: String): String {
        if (TextUtils.isEmpty(str)) return ""
        return str.replace("\\s".toRegex(), "")
    }

    /**
     * 格式化 字符串；、涉及到空值均展示为“-”
     */
    @JvmStatic
    fun formatStr(str: String): String {
        if (TextUtils.isEmpty(str)) return "-"
        return str
    }

    /**
     * 格式化 字符串；、涉及到空值均展示为“-”
     */
    @JvmStatic
    fun formatStrAmount(str: String): String {
        if (TextUtils.isEmpty(str)) return "-"
        return "¥${MathUtils.FormatThousandsNumber(str)}"
    }

    @JvmStatic
    private fun isEmpty(collection: Collection<*>?): Boolean {
        return null == collection || collection.isEmpty()
    }




}